package com.smedi.ismedi.authority.starter.response;

import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.*;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class AuthorityAccessResponse implements Serializable {
    @ApiModelProperty(value = "人员id")
    private Long personId;

    @ApiModelProperty(value = "用户唯一key")
    private String userKey;

    @ApiModelProperty(value = "人员名称")
    private String lastName;

    @ApiModelProperty(value = "员工编号")
    private String employeeNum;

    @ApiModelProperty(value = "用户账号")
    private String userName;

    @ApiModelProperty(value = "手机号")
    private String mobile;

    @ApiModelProperty(value = "性别")
    private String genderMeaning;

    @ApiModelProperty(value = "企业人员")
    private boolean internal;

    @ApiModelProperty(value = "管理员")
    private boolean admin;

    @ApiModelProperty(value = "是否虚拟人员")
    private boolean virtual;

    @ApiModelProperty(value = "人员头像id")
    private String imageUUID;

    @ApiModelProperty(value = "令牌")
    private String token;

    @ApiModelProperty(value = "登录时间")
    private LocalDateTime loginDateTime;

    @ApiModelProperty(value = "企业分配")
    private List<InternalAssignmentInfoResponse> internalAssignments = new ArrayList<>();

    @ApiModelProperty(value = "项目分配")
    private List<ProjectAssignmentInfoResponse> projectAssignments = new ArrayList<>();

    @ApiModelProperty(value = "数据范围")
    private Map<String, List<Long>> dataScope = new HashMap<>();

    @ApiModelProperty(value = "是否首次登入")
    private boolean firstLogin;

    @ApiModelProperty(value = "角色列表")
    private List<RoleResponse> roles;

    @ApiModelProperty(value = "初始三级组织信息")
    private NodeInfo nodeInfo;

    @ApiModelProperty(value = "层级")
    private String personLevel;
}
